package com.fotile.weixin.work.utils;

import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.fotile.base.net.HttpUtil;
import com.fotile.weixin.work.response.token.AccessToken;
import com.fotile.weixin.work.response.WeiXinResult;

/**
 * 微信企业获取token相关接口
 * accessToken 获取之后可以缓存或序列化在数据库，放在redis等存储空间，这里不错缓存，只作为工具类存在
 *
 * @version        1.0, 18/08/28
 * @author         江虹
 */
public class WorkTokenUtil {
    private static final String QY_WEIXIN_PREFIX = "https://qyapi.weixin.qq.com/cgi-bin/";

    /**
     * 根据corpId和secret获取AccessToken对象
     * 不涉及到存储
     *
     * @param corpid 每个应用都有唯一的agentid。在管理后台->“企业应用”->点进应用，即可看到agentid。
     * @param secret secret是企业应用里面用于保障数据安全的“钥匙”，每一个应用都有一个独立的访问密钥，为了保证数据的安全，secret务必不能泄漏。
     * @return TokenResult
     */
    public static AccessToken getToken(String corpid, String secret) {
        String url = QY_WEIXIN_PREFIX + "gettoken?corpid=" + corpid + "&corpsecret=" + secret;
        String result = HttpUtil.get(url);
        AccessToken accessToken = JSONObject.parseObject(result,new TypeReference<AccessToken>(){});
        return accessToken;
    }


    public static void main(String[] args) {
        WeiXinResult accessToken= WorkTokenUtil.getToken(
                "ww51f84b28dc9ac17d","IRfXPg27hQ3zxiJhwk-DPl2iD7o1gDEiPWv0ie75DzE");
        System.out.println(accessToken.toString());
    }
}



